let express = require("express");
let router = express.Router();
let {readFun,writeFun} = require("../utils/readOrwirte")

// 发布论坛接口
router.post("/send/msg",async (req,res)=>{
    // 获取前端传递的参数
    let {content,headerUrl,time} = req.body;
    // 获取当前登录的用户名
    let username = req.cookies.username;
    // 判断是否存在username
    if(!username){
        res.send({
            code:1,
            msg:"非法用户"
        })
        return
    }
    // 读取存放论坛列表的文件
    let data = await readFun("./data/list.json");
    let msg = {
        content,
        headerUrl,
        time,                                                                        
        username,
        // 评论列表
        pinglun:[]
    }
    data.unshift(msg);
    await writeFun("./data/list.json",JSON.stringify(data));
    res.send({
        code:0,
        msg:"添加成功"
    })
})
// 获取论坛列表接口
router.get("/get/list",async (req,res)=>{
   try{
     // 读取论坛列表信息
     let data = await readFun("./data/list.json");
    //  将读取到的论坛列表返回给客户端
    res.send({
        code:0,
        msg:"获取成功",
        data:data
    })
   }catch(err){
    res.send({
        code:1,
        msg:"获取失败",
        err:err
    })
   }
})

// 根据用户名获取用户头像
router.get("/user/phpto",async (req,res)=>{
    // 获取前端传递的用户名
    let {username} = req.query;
    let data = await readFun("./data/user.json");
    let index = data.findIndex((item)=>{
        return item.username === username;
    })
    if(index===-1){
        res.send({
            code:1,
            msg:"非法用户"
        })
        return
    }
    // 根据索引获取当前用户对应的头像
    let imgurl = data[index].header;
    res.send({
        code:0,
        msg:"获取成功",
        url:imgurl
    })
})
// 根据用户名获取当前用户所对应的论坛列表
router.get("/get/username/msgList",async (req,res)=>{
    // 获取前端传递过来的用户名
    let {username} = req.query;
    // 根据当前用户名查询当前用户所对应所有论坛列表
    let data = await readFun("./data/list.json");
    let msgList = data.filter(item=>{
        return item.username === username;
    })
    res.send({
        code:0,
        msg:"获取成功",
        data:msgList
    })
})

// 用户评论
router.post("/user/pinglun",async (req,res)=>{
   //获取前端传递过来的参数
   let {msgIndex,content,time,userPhoto} = req.body;
   // 获取当前登录的用户名
   let username = req.cookies.username;
//    console.log(msgIndex,content,time,userPhoto,username)
   let data = await readFun("./data/list.json");
   // 根据索引获取要评论的论坛对象
   let msg = data[msgIndex];
   console.log(msg)
   let pinglunObj = {
     username,
     time,
     content,
     userPhoto
   }
   // 将评论信息添加到当前评论的论坛评论列表
   msg.pinglun.unshift(pinglunObj);
   await writeFun("./data/list.json",JSON.stringify(data));
   res.send({
    code:0,
    msg:"评论成功"
   })
})

// 删除论坛
router.get("/remove/luntan",async (req,res)=>{
    // 获取前端传递过来的要删除的论坛索引
    let index = req.query.index;
    // 判断是否登录
    if(!req.cookies.username){
        res.send({
            code:1,
            msg:"非法用户"
        })
        return
    }
    let data = await readFun("./data/list.json");
    // 根据索引删除对应论坛
    data.splice(index,1);
    // 将删除后的数据重新写入
    await writeFun("./data/list.json",JSON.stringify(data));
    res.send({
        code:0,
        msg:"删除成功"
    })
})
module.exports = router;